
Процедура ОбработкаПроведения(Отказ, Режим)
	
	// Нерабочий вариант без ошибок
		
	ЗапрГруп = Новый Запрос;
	ЗапрГруп.Текст = 
		"ВЫБРАТЬ
		|	ДокПотребТабчДокПотреб.РекТабчДокПотребПродукт КАК РекЗапрГрупПродукт,
		|	СУММА(ДокПотребТабчДокПотреб.РекТабчДокПотребКоличество) КАК РекЗапрГрупКоличество
		|ИЗ
		|	Документ.ДокПотреб.ТабчДокПотреб КАК ДокПотребТабчДокПотреб
		|
		|СГРУППИРОВАТЬ ПО
		|	ДокПотребТабчДокПотреб.РекТабчДокПотребПродукт";
	
	РезультатЗапроса = ЗапрГруп.Выполнить();
	
	ВыборкаДетальныеЗаписиЗапрГруп = РезультатЗапроса.Выбрать();     
	
	    
	
	Пока ВыборкаДетальныеЗаписиЗапрГруп.Следующий() Цикл
		// Вставить обработку выборки ВыборкаДетальныеЗаписиЗапрГруп    
		
		// регистр РегНакПродукты Расход
		Движения.РегНакПродукты.Записывать = Истина; 
		
		СредЦенаПродукт = 0;
		Запрос = Новый Запрос;
		Запрос.Текст = 
			"ВЫБРАТЬ
			|	РегНакПродуктыОстатки.РегНакПродуктыИзмПродукт КАК РегНакПродуктыИзмПродукт,
			|	РегНакПродуктыОстатки.РегНакПродуктыРесКоличествоОстаток КАК РегНакПродуктыРесКоличествоОстаток,
			|	РегНакПродуктыОстатки.РегНакПродуктыРесСуммаОстаток КАК РегНакПродуктыРесСуммаОстаток
			|ИЗ
			|	РегистрНакопления.РегНакПродукты.Остатки(&ДатаЗапроса, РегНакПродуктыИзмПродукт = &УсловЗапросаПоПродукту) КАК РегНакПродуктыОстатки";
		
		Запрос.УстановитьПараметр("ДатаЗапроса", МоментВремени());
		Запрос.УстановитьПараметр("УсловЗапросаПоПродукту", ВыборкаДетальныеЗаписиЗапрГруп.РекЗапрГрупПродукт);
		
		РезультатЗапроса = Запрос.Выполнить();
		                                                            
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
		
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			// Вставить обработку выборки ВыборкаДетальныеЗаписи 
			Если ВыборкаДетальныеЗаписи.РегНакПродуктыРесКоличествоОстаток > 0 Тогда
				
				СредЦенаПродукт = ВыборкаДетальныеЗаписи.РегНакПродуктыРесСуммаОстаток / ВыборкаДетальныеЗаписи.РегНакПродуктыРесКоличествоОстаток;
				Сообщить("СредЦенаПродукт");
				Сообщить(Строка(СредЦенаПродукт));

			КонецЕсли;
		КонецЦикла;  
		
		// КОНЕЦ вычисления средней цены продукта СредЦенаПродукт
		
		// НАЧАЛО записи в регистр РегНакПродукты
		Движение = Движения.РегНакПродукты.Добавить();
		Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
		Движение.Период = Дата;
		Движение.РегНакПродуктыИзмПродукт = ВыборкаДетальныеЗаписиЗапрГруп.РекЗапрГрупПродукт;
		Движение.РегНакПродуктыРесКоличество = ВыборкаДетальныеЗаписиЗапрГруп.РекЗапрГрупКоличество;
		Движение.РегНакПродуктыРесСумма = ВыборкаДетальныеЗаписиЗапрГруп.РекЗапрГрупКоличество * СредЦенаПродукт;    
		// КОНЕЦ записи в регистр РегНакПродукты

		
	КонецЦикла;
		
	КонецПроцедуры
